#ifndef __ELEMENTS_H__
#define __ELEMENTS_H__

#include "Element.h"
#include <vector>

class Elements
{
public:
	typedef std::vector<Element>    element_cont_type;
    typedef Elements*               ElementsPtr;

private:
	element_cont_type	m_elements;

	// singleton requires this (constructor is private so only the singleton class may create itself)
	static ElementsPtr	m_pInstance;
	Elements() {};

public:
	~Elements() { delete m_pInstance; }

	static ElementsPtr  GetInstance();
	element_cont_type   GetElements() const { return m_elements; }

	void CreateElement(std::string name, std::string opposite);
};

#endif